/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package sn.dao;

import java.util.List;
import java.util.Set;
import sn.metier.Personne;

/**
 *
 * @author Harry
 */
public interface PersonneDAO extends GenericDAO<Personne>{

    /**
     * Trouver la personne correspondant aux identifiants donnés
     * @param email email de la personne
     * @param passwd mot de passe de la personne
     * @return la personne correspondant aux identifiants si elle existe, null sinon
     */
    public Personne findByEmailPasswd(String email, String passwd);
    
    /**
     * Cherche si un email est déjà utilisé dans la base
     * @param email l'email à chercher
     * @return vrai si l'email est déjà utilisé, faux sinon
     */
    public boolean isEmailExistant(String email);

    /**
     * Trouver la personne à l'aide de son nom de famille
     * @param nom le nom de famille de la personne
     * @return les personnes ayant ce nom de famille
     */
    public List<Personne> findByNom(String nom);

    /**
     * Trouver la personne à l'aide de son prenom
     * @param nom le prenom de la personne
     * @return les personnes ayant ce prenom
     */
    public List<Personne> findByPrenom(String prenom);

     /**
     * Trouver la personne à l'aide de son pseudo
     * @param nom le pseudo de la personne
     * @return les personnes ayant ce pseudo
     */
    public List<Personne> findByPseudo(String pseudo);

    /**
     * Renvoie la liste des Personnes correspondant aux ID passés en paramètres
     * @param liste des ids
     * @return une liste de personne correspondante
     */
    public List<Personne> findByIds(List<Long> liste);
}
